この クライアント・サーバー型プログラミングモデル は、分散型アプリケーションの基盤となるアーキテクチャです。これはハードウェアによって定義されるものではなく、 論理的なトランザクション という2つのプロセス間の クライアント がリソースの要求を開始し、 リソース、そして サーバー がそのリソースを管理・提供するものです。
1. 4段階のトランザクション
すべての相互作用は厳密な手順に従います。(1) クライアントがリクエストを送信;(2) サーバーがリクエストを解釈し、ローカルリソースを処理;(3) サーバーが応答を送信;(4) クライアントが受信したデータを処理(例:HTMLのレンダリング)。
2. ハードウェアの構成
通信は ネットワークアダプタと呼ばれる入出力デバイスに依存しています。データはCPUから I/Oブリッジ および システムバス を経由して メインメモリへと移動します。例えば http://www.google.com:80のようなウェブリクエストでは、パケットがこれらのバスを通過してアプリケーションコードに到達します。
3. プロトコルの抽象化
現代のアプリケーションは ネットワークバイトオーダー(ビッグエンディアン) を用いて一貫性を持たせます。例として getaddrinfo は ドメイン名からIPアドレスへのマッピング という機能を提供しつつ、プロトコルに依存しないままです。
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>